/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package op;

/**
 *
 * @author Jonatas
 */
public class Ligacao extends EntradaAbstrata {

    protected Ligacao() {
    }

    @Override
    public Ligacao clone() {
        return (Ligacao) super.clone();
    }

    @Override
    public boolean isLigacao() {
        return true;
    }

    public boolean isACobrar() {
        return (duracaoLigacaoACobrarSegundos != null);
    }

    public int compareTo(Object o) {

        if (!(o instanceof Ligacao)) {
            return -1;
        }

        Ligacao outra = (Ligacao) o;

        if (numeroDeOrigem.equals(outra.numeroDeOrigem)) {

            if (isACobrar()) {
                if (outra.isACobrar()) {
                    return destino.compareTo(outra.destino);
                } else {
                    return 1;
                }
            }

            if (outra.isACobrar()) {
                return -1;
            } else {
                return destino.compareTo(outra.destino);
            }

        }

        return numeroDeOrigem.compareTo(outra.numeroDeOrigem);

    }

    public Integer getDuracao() {
        if (isACobrar()) {
            return getDuracaoLigacaoACobrarSegundos();
        }
        return getDuracaoLigacaoSegundos();
    }
}
